package com.wxb.quartz.model;


import com.wxb.quartz.util.GenericVo;

import java.math.BigDecimal;

/**
 * @author 王校兵
 * @version V1.0
 * @date 2017-06-20
 */
public class PayRecord implements GenericVo {

    private Integer id;

    private String userId;

    private String orderId;

    private String tradeId;

    private String refundId;

    private String createdTime;

    private String payTime;

    private String refundTime;

    private String closeTime;

    private String orderType;

    private String payType;

    private String buyerId;

    private String orderStatus;

    //交易的几种状态
    //WAIT_BUYER_PAY（交易创建，等待买家付款）
    // TRADE_CLOSED（未付款交易超时关闭，或支付完成后全额退款）
    // TRADE_SUCCESS（交易支付成功）
    // TRADE_FINISHED（交易结束，不可退款）
    private String tradeStatus;

    private BigDecimal totalAmount;

    private BigDecimal receiptAmount;

    private BigDecimal invoiceAmount;

    private BigDecimal buyerPayAmount;

    private BigDecimal refundAmount;

    private String refundReason;

    private String refundChannel;

    private String productId;

    private String productName;

    private BigDecimal productAmount;

    private Integer productNum;

    public PayRecord() {
    }

    public PayRecord(String userId, String orderId, String tradeId, String refundId, String createdTime, String payTime, String refundTime, String closeTime, String orderType, String payType, String buyerId, String orderStatus, String tradeStatus, BigDecimal totalAmount, BigDecimal receiptAmount, BigDecimal invoiceAmount, BigDecimal buyerPayAmount, BigDecimal refundAmount, String refundReason, String refundChannel, String productId, String productName, BigDecimal productAmount, Integer productNum) {
        this.userId = userId;
        this.orderId = orderId;
        this.tradeId = tradeId;
        this.refundId = refundId;
        this.createdTime = createdTime;
        this.payTime = payTime;
        this.refundTime = refundTime;
        this.closeTime = closeTime;
        this.orderType = orderType;
        this.payType = payType;
        this.buyerId = buyerId;
        this.orderStatus = orderStatus;
        this.tradeStatus = tradeStatus;
        this.totalAmount = totalAmount;
        this.receiptAmount = receiptAmount;
        this.invoiceAmount = invoiceAmount;
        this.buyerPayAmount = buyerPayAmount;
        this.refundAmount = refundAmount;
        this.refundReason = refundReason;
        this.refundChannel = refundChannel;
        this.productId = productId;
        this.productName = productName;
        this.productAmount = productAmount;
        this.productNum = productNum;
    }

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getUserId() {
        return userId;
    }

    public void setUserId(String userId) {
        this.userId = userId;
    }

    public String getOrderId() {
        return orderId;
    }

    public void setOrderId(String orderId) {
        this.orderId = orderId;
    }

    public String getTradeId() {
        return tradeId;
    }

    public void setTradeId(String tradeId) {
        this.tradeId = tradeId;
    }

    public String getRefundId() {
        return refundId;
    }

    public void setRefundId(String refundId) {
        this.refundId = refundId;
    }

    public String getCreatedTime() {
        return createdTime;
    }

    public void setCreatedTime(String createdTime) {
        this.createdTime = createdTime;
    }

    public String getPayTime() {
        return payTime;
    }

    public void setPayTime(String payTime) {
        this.payTime = payTime;
    }

    public String getRefundTime() {
        return refundTime;
    }

    public void setRefundTime(String refundTime) {
        this.refundTime = refundTime;
    }

    public String getCloseTime() {
        return closeTime;
    }

    public void setCloseTime(String closeTime) {
        this.closeTime = closeTime;
    }

    public String getOrderType() {
        return orderType;
    }

    public void setOrderType(String orderType) {
        this.orderType = orderType;
    }

    public String getPayType() {
        return payType;
    }

    public void setPayType(String payType) {
        this.payType = payType;
    }

    public String getBuyerId() {
        return buyerId;
    }

    public void setBuyerId(String buyerId) {
        this.buyerId = buyerId;
    }

    public String getOrderStatus() {
        return orderStatus;
    }

    public void setOrderStatus(String orderStatus) {
        this.orderStatus = orderStatus;
    }

    public String getTradeStatus() {
        return tradeStatus;
    }

    public void setTradeStatus(String tradeStatus) {
        this.tradeStatus = tradeStatus;
    }

    public BigDecimal getTotalAmount() {
        return totalAmount;
    }

    public void setTotalAmount(BigDecimal totalAmount) {
        this.totalAmount = totalAmount;
    }

    public BigDecimal getReceiptAmount() {
        return receiptAmount;
    }

    public void setReceiptAmount(BigDecimal receiptAmount) {
        this.receiptAmount = receiptAmount;
    }

    public BigDecimal getInvoiceAmount() {
        return invoiceAmount;
    }

    public void setInvoiceAmount(BigDecimal invoiceAmount) {
        this.invoiceAmount = invoiceAmount;
    }

    public BigDecimal getBuyerPayAmount() {
        return buyerPayAmount;
    }

    public void setBuyerPayAmount(BigDecimal buyerPayAmount) {
        this.buyerPayAmount = buyerPayAmount;
    }

    public BigDecimal getRefundAmount() {
        return refundAmount;
    }

    public void setRefundAmount(BigDecimal refundAmount) {
        this.refundAmount = refundAmount;
    }

    public String getRefundReason() {
        return refundReason;
    }

    public void setRefundReason(String refundReason) {
        this.refundReason = refundReason;
    }

    public String getRefundChannel() {
        return refundChannel;
    }

    public void setRefundChannel(String refundChannel) {
        this.refundChannel = refundChannel;
    }

    public String getProductId() {
        return productId;
    }

    public void setProductId(String productId) {
        this.productId = productId;
    }

    public String getProductName() {
        return productName;
    }

    public void setProductName(String productName) {
        this.productName = productName;
    }

    public BigDecimal getProductAmount() {
        return productAmount;
    }

    public void setProductAmount(BigDecimal productAmount) {
        this.productAmount = productAmount;
    }

    public Integer getProductNum() {
        return productNum;
    }

    public void setProductNum(Integer productNum) {
        this.productNum = productNum;
    }

    @Override
    public String toString() {
        return "PayRecord{" +
                "id=" + id +
                ", userId='" + userId + '\'' +
                ", orderId='" + orderId + '\'' +
                ", tradeId='" + tradeId + '\'' +
                ", refundId='" + refundId + '\'' +
                ", createdTime='" + createdTime + '\'' +
                ", payTime='" + payTime + '\'' +
                ", refundTime='" + refundTime + '\'' +
                ", closeTime='" + closeTime + '\'' +
                ", orderType='" + orderType + '\'' +
                ", payType='" + payType + '\'' +
                ", buyerId='" + buyerId + '\'' +
                ", orderStatus='" + orderStatus + '\'' +
                ", tradeStatus='" + tradeStatus + '\'' +
                ", totalAmount=" + totalAmount +
                ", receiptAmount=" + receiptAmount +
                ", invoiceAmount=" + invoiceAmount +
                ", buyerPayAmount=" + buyerPayAmount +
                ", refundAmount=" + refundAmount +
                ", refundReason='" + refundReason + '\'' +
                ", refundChannel='" + refundChannel + '\'' +
                ", productId='" + productId + '\'' +
                ", productName='" + productName + '\'' +
                ", productAmount=" + productAmount +
                ", productNum=" + productNum +
                '}';
    }

    @Override
    public String getOid() {
        return this.id.toString();
    }

    @Override
    public void setOid(Object oid) {
        this.id = (Integer) oid;
    }


}